/**
 * Object类型复制-浅拷贝
 * 引用复制是复制的栈中的对象指向 指向的是同一块内存空间
 * 浅拷贝只拷贝对象的第一层 在堆中开辟内存复制存储，
 * 栈中存引用，对象的属性是对象的话不会另外开辟空间复制存储 --- 浅复制
 * Array浅复制
 * 1 展开运算符
 * 2 Array.slice()
 * 3 Array.from()
 * 4 Array.concat()
 * 5 Array.map()
 * 6 for循环
 * Object浅复制
 * 1 展开运算符 {...target}
 * 2 Object.assign({},target)
 * 3 Object.create()
 * 4 for...in循环复制 
 */

// 通用
const shallowClone = function(obj){
  return Array.isArray(obj)? [...obj] : {...obj}
}